// 属性装饰器
const PropDecorator:PropertyDecorator = (...args: any[]) => {
    console.log(args);
    // 有两个元素，第一个：如果修饰的是静态属性，为构造函数；如果修饰的为普通属性，为原型对象
               // 第二个：属性名
}

// 参数装饰器
const ParamDecorator:ParameterDecorator = (...args: any[]) =>{
    console.log(args);
    // 有两个元素，第一个：参数原型
               // 第二个：参数名
               // 第三个：参数的位置(第几个参数)
}

class User{
    @PropDecorator
    public name:string | undefined

    @PropDecorator
    public static age:number | undefined = 18

    public show(id:number,@ParamDecorator content:string){}
}

new User().show(1,"abc");